package zengqiang.day05

fun main(args: Array<String>) {
    //lambda可以单独存在
//    {
//        println("测试")
//    }()

    {
        println("测试")
    }.invoke()



    //有参的lambda
    var r={
        n:Int,m:Int->m+n
    }(1,2)
    println(r)

    var r1={
        n:Int,m:Int->m+n
    }.invoke(1,2)
    println(r1)



    //保存lambda表达式
    //block:()->Unit 代表block是函数类型并且无返回值
    val block:()->Unit={
        println("测试")
    }
    block()


    //只有一个参数的lambda表达式，可以省略参数，直接用it表示
    //注意：lambda表达式的返回值，是根据{}内部的最后一行确定的
    var result=haha(10,{
        it+10
    })
    println(result)//20

}
fun  haha(a:Int,block:(Int)->Int):Int{
    return block(a)
}

